#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QStackedWidget>
#include "main_home.h"
#include "map.h"
#include "resultwidget.h"
#include "logindialog.h"
#include "sessionmanager.h"
#include "loginstatuswidget.h"
#include <QGuiApplication>
#include <QScreen>               // 包含 QScreen 以访问屏幕信息
#include <QGuiApplication>       // 包含 QGuiApplication 以获取 primaryScreen
#include <QDesktopWidget>        // 如果还使用 QDesktopWidget
#include <QDebug>
#include <QToolBar>
#include <QVBoxLayout>
#include <QPointer>
#include "usermanagementwidget.h"

namespace Ui {
class MainWindow;
}


class MainWindow : public QMainWindow {
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = nullptr);
    int choose;
    ~MainWindow();


private slots:
    void showMapWidget();  // 切换到地图界面
    void showMainWidget(); //返回主界面
    void showLogin();
    void handleLoginSuccess(const QString &username,const QString &password);
    void showUserManagement();
    void showResultWidget();

private:
    QStackedWidget *stackedWidget;
    MainWidget *mainWidget;
    MapWidget *mapWidget;
    ResultWidget *resultWidget;
    LoginStatusWidget *loginStatusWidget;
    Ui::MainWindow *ui;
    QPointer<LoginDialog> loginDialog;
    UserManagementWidget *userManagementWidget;

};

#endif // MAINWINDOW_H
